System and method for employing state information to enhance network functionality

ABSTRACT

A system and method for enabling an enhanced camp-on feature for a communications device. In an illustrative embodiment, the system includes a first mechanism for providing information pertaining to why a first user of a first communications device is unable to be contacted. A second mechanism enables a second user of a second communications device to make a camp-on selection based on the information. In a more specific embodiment, the information includes state information pertaining to the first communications device. The first means includes a first module running on the first communications device. The first module is adapted to selectively relay the state information to an entity connected to the network. In the specific embodiment, the entity connected to the network includes Private Branch eXchange (PBX) system.

BACKGROUND OF THE INVENTION

This invention is related in general to telecommunications and morespecifically to systems and methods for handling a failed attempt toestablish a phone call.

Systems for enhancing communications functionality are employed invarious applications including telephone, email, instant messaging, textmessaging, and multimedia messaging applications. Such applicationsoften require functionality that provide users various communicationsoptions that may improve communications efficiency and versatility.

Functionality and features that enhance communications options areparticularly important in proliferating telecommunications applications,such as Voice-Over-Internet-Protocol (VOIP) and cellular applications.An exemplary VOIP application may involve transferring messages, such asvoice messages, over a packet switched network between a VOIP phone andanother VOIP phone, a cellular phone, a phone connected to acircuit-switched network, such as the Public Switched Telephone Network(PSTN), a pager, and/or another communication device. Conventionally,VOIP phones and associated networks may enable certain calling features,including call forwarding, three-way calling, caller-identification(caller ID), and automatic busy-number call back (camp-on), and so on.Unfortunately, existing telephony applications often provide relativelylimited feature sets that do not fully leverage existing communicationsinfrastructure, reducing communications options, functionality, andefficiency.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a system for enhancing functionality ofa communications device according to an embodiment of the presentinvention that is employed in a Voice-Over-Internet-Protocol (VOIP)application.

FIG. 2 is a diagram of a first alternative embodiment of the system ofFIG. 1 that is adapted for use between two VOIP phones.

FIG. 3 is a diagram illustrating a second alternative embodiment of thesystem of FIG. 1 that employs a Private Branch exchange (PBX).

FIG. 4 is a flow diagram of a method adapted for use with the systems ofFIGS. 1-3.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

A preferred embodiment of the present invention implements a system forenabling an enhanced camp-on feature for a communications device that isconnected to a network. In an illustrative embodiment, the systemincludes a first mechanism that provides information pertaining to why auser (“callee”) of a first communications device is unable to becontacted. A second mechanism enables a user (“caller”) of a secondcommunications device to make a camp-on selection based on theinformation. Selections can be made automatically according topredetermined rules.

In a more specific embodiment, the information includes stateinformation pertaining to the first communications device. The firstmechanism includes a first module, which runs on the firstcommunications device, and selectively relays the state information to acentralized entity, such as a Private Branch exchange (PBX) system thatis connected to the network.

For clarity, various well-known components, such as, power supplies,communications ports, routers, modems, firewalls, network cards,Internet Service Providers (ISPs), browsers, Base station TransceiverSubsystems (BTSs) and so on, have been omitted from the figures.However, those skilled in the art with access to the present teachingswill know which components to implement and how to implement them tomeet the needs of a given application.

FIG. 1 is a diagram illustrating a system 10 for enhancing functionalityof a communications device according to an embodiment of the presentinvention employed in a Voice-Over-Internet-Protocol (VOIP) application.The system 10 may represent a network with enhanced functionality, suchas enhanced camp-on functionality.

The system 10 includes a first VOIP phone 12 in communication with acentral server 14 in a packet-switched network 16, such as the Internet.A cell phone 16 communicates with a Mobile Switching Center (MSC) 20 ina cellular network 24. The MSC 20 includes a Mobile Station Manager(MSM) 18 that maintains cell-phone state information in acell-phone-state module 22. The cell-phone state information representsavailable state information pertaining to cell phones, including thecell phone 16, which are connected to the cellular network 24.

For illustrative purposes, the MSC 20 is shown communicating with thecentral server 14 in the packet-switched network 16 and a circuit switch28 in a Public Switched Telephone Network (PSTN), which may be acircuit-switched network. A landline phone 32, also called a wiredphone, is connected to the circuit switch 28.

In the present specific embodiment, the central server 14 includes acall manager 34. The call manager 34 includes a soft switch 36 incommunication with a centralized device-state repository 38. Thecentralized device-state repository 38 communicates with a centralcamp-on module 40. The centralized device-state repository 38 furthercommunicates with the cell-phone-state module 22 of the MSC 20, alandline-phone state module 42 included in the central switch 28, a VOIPphone state-reporting module 44 included in the VOIP phone 12.

The VOIP phone 12 further includes a state-tracking module 46, alsocalled a phone state machine, which communicated with thestate-reporting module 44. The VOIP phone 12 further includes amulti-camp-on module 52 that communicates with the state-reportingmodule and a VOIP-phone user interface 48. The user interface 48 alsocommunicates with the state-reporting module 44. For illustrativepurposes, the user interface 48 is shown including a camp-on button 50.

For the purposes of the present discussion, a callee communicationsdevice may be any communications device that is a recipient or anintended recipient of a message or other communication intended toinitiate a call. A call may be any communication session between two ormore network entities. Similarly, a caller communications device may beany communications device that is employed to initially send acommunication to a callee device to initiate a call.

A communications device may be any entity, including software and/orhardware, that may be employed to facilitate establishing acommunications session via a network. A network may be any collection ofconnected or coupled devices or entities. A network entity may be anything that is connected to or incorporated within a network, includingsoftware, hardware, protocols, stored data, and so on. Hence, a networkcommunications device may be implemented in software without departingfrom the scope of the present discussion. A phone may be anycommunications device.

Camp-functionality may be or may include any feature or functionalityassociated with a camp-on decision. Similarly, a camp-on feature may beany functionality or feature associated with a camp-on decision. Acamp-on selection or decision can include any means for determining auser's decision or choice of how to handle the inability to establish ormaintain a communications session.

A communication action, also a communications action, may be any taskimplemented or initiated via an entity, including hardware or software,connected to the network. Examples of communications actions includeinitiating phone calls, sending Short Message Service (SMS) textmessage, initiating an Instant Messaging (IM) session, sending anelectronic mail message, and so on.

A protocol may be any set of instructions or corresponding method thatcan be used to facilitate communications between one or more entities,such as hardware and/or software modules, devices, or networks. Hence,instructions contained in a particular software module or a networkcommunications device may comprise a protocol.

State information may be any information about a given entity, such as anetwork device or user employing the network device. Examples of stateinformation include information indicating that a user is in aconference or is out of town, information indicating that acommunications device is busy with another communications session, thecommunications device is set to Do Not Disturb (DND), the communicationsdevice is set to call forwarding, and so on.

In operation, various state-tracking modules 22, 42, 44 are adapted toselectively propagate state information pertaining associated devices16, 32, 12 to the centralized device-state repository 38. Thispropagation of state information may be propagated in response to one ormore queries from the centralized device-state repository 38 orautomatically, or via another mechanism without departing from the scopeof the present invention. The state information may include informationpertaining to whether a given device is in communication with a network;whether the device is on or off, whether calls or other communicationsassociated with the device are being forwarded; whether the device iscurrently participating in another call; and so on, as discussed morefully below.

Various devices, such as the VOIP phone 12 may selectively access stateinformation pertaining to a desired device and/or device user, which ismaintained in the centralized device-state repository 38. The stateinformation may then be employed by one or more of the devices 12, 16,32 to implement one or more rules pertaining to a desired action to beimplemented in response to predetermined change in the stateinformation.

In a first operative scenario, a user employs the user interface 48 ofthe VOIP phone 12 to call the cell phone 16 and the landline phone 32.In response to the initiation of the call, state information pertainingto the cell phone 16 is automatically propagated from the centralizeddevice-state repository 38 to the state-reporting module 44 of the VOIPphone 12. Alternatively, a user employs the user interface 48 toconfigure the state-reporting module 44 to periodically query desireddevices 16, 32 for state information. The addresses and/or phone numbersof the desire devices 16, 32 are used by the state-reporting module 44to retrieve the corresponding state information from the centralizeddevice-state repository 38.

In the present scenario, the cell phone 16 is in an off state. The stateof the cell phone 16 is tracked by the cell-phone-state module 22 in theMSC 20 and relayed to the centralized device-state repository 38 and tothe state-reporting module 44 of the VOIP phone 12. Note that the cellphone 16 may be in another state, such as on, outside a coverage area,inside a coverage area, set to forward calls, and so on. Since the cellphone is off 16, the user of the VOIP phone 12 then employs the userinterface 48 and the multi-camp-on module 52 to establish a camp-on onthe state of the cell phone 16.

Corresponding camp-on information, such as the phone number of the cellphone 16, the current state of the cell phone 16, and rules instructingthe VOIP phone 12 to perform a certain action in response to a certainchange in the current state of the cell phone 16 may be maintained inthe multi-camp-on module 52. For example, the user may specify that theVOIP phone 12 automatically initiate a call back to the cell phone 16when the cell phone 16 is turned on and is within a coverage area of theMSC 20. When the camp-on is established, the multi-camp-on module 52periodically or continuously monitors the state of the cell phone 16 viathe state-reporting module 44, which periodically or continuouslyretrieves appropriate state information about the cell phone 16 from thecentralized device-state repository 38.

With knowledge of the current state information pertaining to the cellphone 16, the multi-camp-on module 52 may initiate a call back by theVOIP phone 12 to the cell phone 16 when the cell phone 16, for example,is turned on. When the cell phone 16 is turned on, the state-reportingmodule 44 of the VOIP phone 44 detects the new state information. Thenew state information is then relayed to the multi-camp-on module 52,which then initiates a phone call to the cell phone 16 or performsanother desired action based on predetermined rules established by auser of the VOIP phone 12 via the user interface 48.

In the present specific embodiment, the multi-camp-on module 52 providesa user option, via the user interface 48, to choose what states tocamp-on for different devices, such as the cell phone 16 and/or thelandline phone 32. Available camp-on states, i.e., camp-on informationfrom which a user may choose, may be determined via the state-reportingmodule 44. The state-reporting module 44, which may selectively querythe central server 34 to determine what state information is availablefor a particular phone number, i.e. communications device associatedwith the phone number and/or address. The choice of what state or statesto camp-on is incorporated within the camp-on rules associated with agiven camp-on setup.

In the present scenario, before the state of the cell phone 16 hassufficiently changed to trigger a call back by the VOIP phone 12 orother action, the user of the VOIP phone 12 calls the landline phone 32.However, calls to the landline phone 32 are currently being forwardedand/or the landline phone 32 is busy as indicated by state informationin the centralized device-state repository 38 with reference to thestate module 42 at the circuit switch 28. Accordingly, the user of theVOIP phone 12 then employs the user-interface 48 to establish anothercamp-on setup that is concurrent with the camp-on setup pertaining tothe cell phone 16.

As an example, the landline camp-on setup may include the phone numberassociated with the landline phone 32, current or recent stateinformation pertaining to the state of the landline phone 32, anduser-adjustable camp-on rules. The user-adjustable camp-on rules mayinstruct, for example, that the VOIP phone 12 call the landline phone 32when the landline phone 32 is no longer in a call-forward state, i.e.,when calls to the landline phone 32 are no longer being forwardelsewhere and when the landline phone 32 is no longer busy.

The user of the VOIP phone 12 may set up multiple camp-on setups, whichare tracked and maintained via the multi-camp-on module 52. To activatea desired user interface application and series of screens displayed viathe user interface 48 to facilitate establishing camp-on setups, a usermay press the camp-on button 50. Multiple camp-on functionality may beomitted from the network 10 without departing from the scope of thepresent invention.

The camp-on button 50 may be a softkey pertaining to one or morecamped-on lists. Activation of the camp-on button 50 may activate a listof all camp-on setups that the user of the VOIP phone 12 has entered.Camp-on setups may be deleted from or added to the list by a user viathe user interface 48. Such functionality may be readily implemented inthe VOIP phone 12 by those skilled in the art with access to the presentteachings without undue experimentation.

The state-tracking module 46 maintains information pertaining to thecurrent state of the VOIP phone 12. This state information may beemployed by the user to facilitate establishing one or more camp-onrules and/or criteria. For example, a user may specify that the VOIPphone 12 only call back a user that is being camped on if the VOIP phone12 is in a certain state, such as if the VOIP phone 12 is not currentlybeing used for another purpose as specified by state information relatedby the state-reporting module 44 to the multi-camp-on module 52 from thestate-tracking module 46.

As another example, given user-specified camp-on rules, which may beestablished by a user of the VOIP phone 12, may specify that the VOIPphone 12 only call back the cell phone 16 when the cell phone 12 is notcurrently being used to send a text message; when the battery power ofthe cell phone 16 is at full strength, and so on, or combinations ofconditions thereof. The ability of a user to set camp-on rules based ondevice state information that has been selectively propagated throughthe network 10 represents beneficial functionality that greatly enhancesthe versatility of the network 10 by affording users of devicesconnected to the network 10 additional communication options andcapabilities.

One or more protocols and/or messaging types, such as Internet Protocol(IP), Session Initiation Protocol (SIP), eXtensible Markup Language(XML) messages, and so on, may be employed by modules of the system 10to facilitate propagating state information through the system 10.

The call manager 34 of the central server 14 may be configured toautomatically propagate state information as needed to communicationsdevices, such as the VOIP phone 12 when the communications devicesattempt to initiate phone calls or at other times as needed for aparticular implementation.

In the present specific embodiment, the soft switch 36 running on thecall manager 34 facilitates translating between telephone numbers thatidentify phones connected to the PSTN 30 and IP addresses and phonenumbers that identify devices, such as the VOIP phone 12, that areconnected to the packet-switched network 16. The soft switch 36facilitates establishing an initial communications session between theVOIP phone 12, the pack-switched network 16, and the landline phone 32via the PSTN 30 and between the VOIP phone 12, the packet-switchednetwork 16, and the cell phone 16 via the cellular network 24. After thecommunication session is established, communications between the VOIPphone 12 and the other phones 16, 32 may occur through thepacket-switched network 16 without being routed through the soft switch36.

In an alternative operative scenario, the central camp-on module 40continuously monitors states of communications devices, such as the cellphone 16 and the landline phone 32 that are being camped on and forwardsinformation to the caller device, i.e., the VOIP phone 12 when one ormore states of the callee devices 16, 32 change. Camp-on setupinformation may be forwarded from the VOIP phone 12 to the centralcamp-on module 40 to facilitate centralized camp-on state tracking viathe central camp-on module 40.

Those skilled in the art with access to the present teachings mayreadily implement various modules discussed in the present embodimentwithout undue experimentation. Various modules discussed herein may beimplemented in hardware and/or software. The hardware and/or softwaremay be centralized or distributed among entities connected to thenetwork 10. Furthermore, some of the devices and modules shown in FIG. 1may be implemented via few or no modifications to existing devicesand/or modules. For example, the cell phone 16 may be implemented viaconventional cell phone. The MSC 20, the MSM 18, and the cell-phonestate module 22 may be implemented via few modifications to existingcellular network infrastructure without departing from the scope of thepresent invention. For example, one skilled in the art may readilyconfigure an MSC, such as the MSC 20, to relay state information toanother network entity, such as the central server 14, in response to aquery. Note that cellular networks already maintain certain stateinformation. As network technologies and components advance, additionalstate information will become available. Embodiments of the presentinvention may be employed to effectively leverage this state informationto greatly enhance user options and communications versatility.

Hence, the system 10 of FIG. 1 may employ a centralized network node,such as the central server 14, to maintain state information pertainingto connected devices 12, 16, 32. The system 10 then selectivelyproliferates the state information to facilitate enhanced networkfunctionality, particularly enhanced camp-on features.

FIG. 2 is a diagram of a first alternative embodiment 60 of the system10 of FIG. 1 that is adapted for use between two VOIP phones 62, 64. Thesystem 60 represents a distributed implementation, wherein modules onendpoints 62, 64 are employed to monitor state information and providesignals in response to changes in state information as discussed morefully below.

The embodiment 60 is an enhanced network that includes a PSTN 66 towhich are connected a second VOIP phone 62 and a third VOIP phone 64.The first VOIP phone 62 includes a state machine 68 in communicationwith a camp-on-state monitoring system 70. The camp-on-state monitoringsystem 70 communicates with an accompanying user interface 72.

The third VOIP phone 64 is similar to the second VOIP phone 62, with athird state machine 78, a third camp-on-state monitoring system 80, anda third user interface 82, which correspond to the modules 68, 70, 72,respectively of the second VOIP phone 62, respectively.

In operation, the camp-on-state monitoring system 70 includes softwareand/or hardware instructions, such as routines for enhancing camp-onfunctionality. The instructions include one or more routines formonitoring camp-on requests, setups, and/or associated rules fromanother phone, such as the third VOIP phone 64 that originated thecamp-on requests, setups, and/or rules. The routines monitor the stateof the current VOIP phone 62 with reference to the state machine 68 andselectively forward information, via the packet-switched network 66,pertaining to relevant state changes to the third phone 64 thatoriginated the camp-on request. The third phone 64 then selectively actson the state change information, such as by initiating a call to thesecond VOIP phone 62 in response to the state change information andbased on predetermined camp-on rules, which may be configured via thethird user interface 82.

In the present specific embodiment, additional instructions implementedvia the second camp-on-state monitoring system 70 monitor the state ofcamp-on requests, setups, and/or rules configured via a user of thesecond VOIP phone 62. For the purposes of the present discussion,camp-on requests may include camp-setup information, such as phonenumber information, and camp-on rules specifying what actions to take inresponse to a given state condition.

These additional instructions selectively forward camp-on requests tothe third camp-on-state monitoring system 80 of the third VOIP phone 64.The selective forwarding of camp-on request information may occur inresponse to a camp-on setup being configured via the user interface 72of the second VOIP phone 62. A camp-on setup may be pre-configured.Alternatively, the camp-on setup may occur, for example, in response toan initial attempt by the second VOIP phone 62 to call the third VOIPphone 64.

The camp-on state monitoring module 70 may be user configured to onlyadvertise, i.e., provide information pertaining certain states of theVOIP phone 62 to other phones, such as the third VOIP phone 64. Forexample, a user may not wish to advertise state information pertainingto battery power levels of the first VOIP phone 62. In this case, theuser may prevent this state information from being provided to thecamp-on-state monitoring system 70 by employing the user interface 72 toadjust one or more routines running on the camp-on-state monitoringsystem 70 accordingly.

While the operation of the present system 60 had been discussed withrespect to one phone being the caller phone and the other phone beingthe callee phone, caller phone and the callee phone may be switched, sothat the caller phone is the callee phone and the callee phone is thecaller phone, without departing from the scope of the present invention.

Exact details pertaining to the functionality provided by the variousmodules, such as the camp-on-state monitoring modules 70, 80 of the VOIPphones 62, 64 are application specific. Those skilled in the art mayreadily implement additional or fewer features to meet the needs of agiven application without departing from the scope of the presentinvention.

While embodiments herein are discussed with reference to camp-on setupsthat have been configured by a user, embodiments of the presentinvention are not limited thereto. For example, default camp-on setupsmay be employed without departing from the cope of the presentinvention.

To facilitate exchanging state information between the VOIP phones toenable camp-on of desired states of each phone 62, 64, various protocolsand message types may be suitable. For example, Session InitiationProtocol (SIP) history and reason codes may be employed to transferstate information between the VOIP phones 62, 64 over thepacket-switched network 66.

The system 60 may be considered a system for enhancing functionality ofa communications device that includes a first communications device 62;a first request-tracking module 70 in communication with the firstcommunication device 62; a second communications device 64; a secondstate-tracking module 80 in communication with the second communicationdevice 64 and adapted to track one or more states thereof and further incommunication with the first request-tracking module 70; and astate-monitoring module 78 in communication with the firstrequest-tracking module 70, such as via the packet-switched network 66.

The second state-monitoring module 78 is adapted to send a signal to thefirst communication device 62 when a state of the second communicationdevice 64 changes. The first request-tracking module 70 issues a requestto the second state-tracking module to notify the first communicationdevice 62 when the state changes. The one or more states may include oneor more of the following: a call-forwarding state, a Do-Not-Disturb(DND) state, out-of-range state, an unavailable state, and so on.

With reference to FIG. 1, the second state-tracking module 80 may beimplemented via plural modules, such as the cell phone state module 22,the centralized device-state repository 38, and the central camp-onmodule 40 of FIG. 1. Hence, the second state tracking module may includea module 22, 38, 40 residing in one or more of the following: a callmanager 34, a Mobile Switching Center (MSC) 20, a Mobile Station Manager(MSM) 18.

With reference to FIG. 2, the system 60 may include a first mechanism 70in the first communications device 62 for initiating a call between thefirst communications device 62 and the second communications device 64in response to a state change detected by the second state-trackingmodule 80. A second mechanism 66, 80, 70 may selectively proliferatedevice state information in response to one or more requests initiatedthe first communications device 62 and received by the firstrequest-tracking module 70 to monitor states of the secondcommunications device 64.

FIG. 3 is a diagram illustrating a second alternative embodiment 90 ofthe system 10 of FIG. 1 that employs a Private Branch exchange (PBX) 92.For the purposes of the present discussion, a PBX may be a private phonesystem that facilitates connecting parties in a local phone network,such as a Small Office/Home Office (SOHO) business phone network. A PBXmay be connected to an outside phone network, such as the PSTN 66.

The enhanced network 92 includes a first communication device 94 incommunication with a second communication device 96 via the PBX 92. Thefirst communication device 94, which may be implemented via a VOIPphone, a computer, or other device, includes a camp-on module 98 incommunication with a first user interface 104. The camp-on module 98includes a camp-on setups module 100, which includes a camp-on rulemodule 102. The camp-on rule module 102 maintains user-configurablerules for acting in response to a state change or condition pertainingto another network entity, such as the second communications device 96.

In the present specific embodiment, the second communications device 96includes a second camp-on rule module 106 that communicates with asecond user interface 110. The second camp-on rule module 106 includesan advertised-states module 108, which maintains information specifyingwhat states, such as busy state, forwarding state, and so on will beadvertised by the second communications device 96.

The PBX includes a PBX state-tracking module 112, which includes aselective-connection module 114. The selective-connection module 114includes one or more routines for selectively sending messages orestablishing calls between the communications devices 94, 96 in responseto one or more predetermined conditions based on state informationassociated with one or more of the communications devices 94, 96.

In one operative scenario, the first communications device 94 isemployed to camp-on and advertised state of the second communicationsdevice 96. The advertised state may be selectively forwarded to and/orretrieved b the state-tracking module 112 running on the PBX system 92.The first communications device 94 may initiate a camp-on based on oneor more of the states of the second communications device 96 that areadvertised via the state-tracking module 112. To initiate a camp-on,camp-on setup information is forwarded from the first communicationsdevice to the state-tracking module 112. The camp-on-state informationmay include various types of information, such as phone number or otheraddress, selected state or states to camp-on, and camp-on rules, such asrules specifying certain actions in response to certain state-basedcriteria.

The state-tracking module 112 then monitors the state of the secondcommunications device 96 and initiates one or more actions in accordancewith the camp-on rules when one or more criteria pertaining to one ormore advertised states of the second communications device 96 are met.Exemplary actions include connecting the first communications device 94with the second communications device 96 via a voice call; sending atext message from the first communications device 94 to the secondcommunications device 96; and so on.

The PBX 92 may be replaced with another type of network device orswitch, such as a router or Open Systems Interconnect (OSI) layer 3 orlayer-2 switch, without departing from the scope of the presentinvention. In implementations wherein the PBX system 92 includesrequisite IP switching functionality and server functionality, emailmessages, IM messages, and so on may be initiated in response to certainstate-based conditions or criteria.

A user may employ the first communications device to perform other typesof camp-on operations without departing from the scope of the presentinvention. For example, multiple camp-on setups may be tracked in thecamp-on-setups module 100.

Embodiments of the present invention are not limited to telephone calls,video conferencing, or other multimedia communications. Embodiments ofthe present may be adapted to work with any type of networkcommunications session without departing from the scope of the presentinvention.

Various protocols may be employed to facilitate implementing the network90. For example, SIP history and SIP reason codes can provide, to thestate-tracking module 112 and/or the first camp-on module 98, the stateof a callee device 96 and the reason for a call diversion, such aswhether the callee device 96 is busy, set to a forwarding mode, and soon.

As networks advance and numbers of possible advertised device statesgrows, the ability to make camp-on decisions based on advertised states,via embodiments of the present invention grows. Advertised stateinformation may not be limited to predetermined device states, such ason, off, busy, and so on. Other types of device state information maybeemployed, and such device state information may be customized andconfigured via various embodiments of the present invention. Forexample, a user may employ the second user interface 110 of FIG. 3 tospecify why the user of the second communications device 96 isunavailable. For example, the user may be on vacation, in a conference,and so on. Such states may be characterized by user-supplieddescriptions that may be forwarded back to the user of the firstcommunications device 94 to facilitate selecting desired camp-on rulesbased on the description of the current state of the secondcommunications device 96.

Hence, the system 90 of FIG. 3 may be considered a system for enabling acamp-on feature for a communications device that includes a firstmechanism 108, 112 for providing information pertaining to why a givenuser of a first communications device 94, i.e., the callee device, isunable to be contacted or a call cannot otherwise be answered. A secondmechanism 100, 102, 104 enables a user of a second communications device94, i.e., the caller device, to make a camp-on decision based on theinformation. The information includes state information pertaining tothe first communications device 96.

SIP may be employed to provide reason information, i.e., stateinformation, to the caller device 94, pertaining to why the call cannotbe answered by the callee device 96. The reason information may includeinformation indicating that the callee device 96 is connected to anothercall or is otherwise not immediately available. The reason informationmay further include information indicating why the user of the calleedevice is not available.

The system 90 may also be considered a system for enhancingfunctionality of a communications device that includes a first mechanism98, 112, 106 for selectively proliferating state information in anetwork 90, yielding proliferated state information in response thereto.The proliferated state information may correspond to state informationmaintained in the state-tracking module 112 and/or state informationabout the callee device 96 that is forwarded to the camp-on module 98 ofthe caller device 94 via the state-tracking module 112 and theadvertised-states module 108.

A second mechanism 98, 104 a device, such as the caller device 94, whichis connected to the network 90, to provide a user option to employ thestate information to selectively automatically initiate a desired actionvia the device 94 based on the proliferated state information.

FIG. 4 is a flow diagram of a method 120 adapted for use with thesystems 10, 60, 90 of FIGS. 1-3. The method 120 includes initial callingstep 122, wherein a caller employs a caller device to call a calleeemploying a callee device. In cases wherein the caller is not availableor the callee device is characterized by a certain predetermined state,such as a busy state, a call-forwarding state, a DND state, and so on, asubsequent state-relaying step 126 is performed.

The state-relaying step 126 includes relaying state information, such asvia one or more SIP reason codes, indicating a reason why the calleecannot directly be reached by the caller via the callee communicationsdevice. Alternatively, the state information lacks any reason why thecallee cannot be directly reached, but indicates other state informationwith which the caller may employee the caller device to make a camp-ondecision or decision to perform another type of action. For example, thecaller device may determine that the callee device is in a cellularcoverage area that lacks strong signal coverage before the caller devicemakes a call connection to the callee device. The caller may then decideto wait until the callee device enters a region with stronger signalcoverage. Signal coverage information may represent state informationthat the caller device may be configured to automatically retrievebefore connecting with a cellular callee device.

Subsequently, a camp-on checking step 128 determines if one or morecamp-on options and/or setups are provided by the caller and/or callerdevice. For example, the caller may choose to camp-on to thesignal-strength state of a cellular callee device. The camp-on setup mayindicate a desired action to be performed in response to a predeterminedcondition or change in condition of the caller device. If the camp-onchecking step 128 determines that a camp-on option has not beenprovided, then a break-checking step 132 is performed.

The break-checking step 132 determines if a system break has occurred. Asystem break may occur when the caller device is turned off, or thecaller decides to disable or not use camp-on functionality offered byembodiments of the present invention. If a system-break has occurred,the method 120 completes. Otherwise, the method 120 continues at theinitial calling step 122.

If a camp-on option is provided by the caller and/or by a caller device,in a camp-on providing step 128, then a first message-sending step 130is performed. The first message-sending step 130 involves sending amessage to the callee device and/or associated central call manager,which communicates with the callee device, requesting to be notified inwhen the callee device and/or caller are associated with specified statechange or state condition. The callee device may determine availablestate information. The state information may be selectively advertisedby the callee device, such as by sending the requisite state informationto the caller device directly or by forwarding the state information toone or more centralized repositories of state information. The transferof state information may occur in response to a SIP subscription to theadvertised state information, wherein the SIP subscription is initiatedby the caller device via a camp-on setup.

When a change in state of the callee device is detected, a notifyingstep 136 is performed. The notifying step 136 involves notifying thecaller device, such as directly via the callee device or via acentralized device, of any or all relevant state changes associated withthe callee device.

Subsequently, an option-providing step 138 is performed. Theoption-providing step 138 involves providing any additional options tothe caller to enable the caller to make any further camp-on decisions ifthe initial camp-on setup calls for such or otherwise lacks requisiteinformation. For example, when the state of the callee device changes,the caller device may be notified that the state has changed and then beprovided with an option to automatically call back the callee orinitiate another type of action, such as initiating another type ofcommunication session. After the desired action is performed, thebreak-checking step 132 is performed.

Various steps 122-138 of the method 120 may be omitted, changed, orreordered without departing from the scope of the present invention. Forexample, the option-providing step 138 may be omitted, especially inembodiments wherein an initial camp-on setup specifies answers to useroptions in advance of detection of a state change of the callee device.As another example, the method 120 may be replaced with a moregeneralized method without departing from the scope of the presentinvention. An exemplary more generalized method involves providinginformation pertaining to why a given user of a first communicationsdevice is unable to be contacted and then enabling a user of a secondcommunications device to make a camp-on decision based on theinformation.

Another more generalize method involves selectively proliferating stateinformation in a network, yielding proliferated state information inresponse thereto and then employing a device connected to the network toprovide a user option to employ the state information to selectivelyautomatically initiate a desired action via the device based on theproliferated state information.

Another generalized method involves monitoring a state of a firstcommunications device connected to a network; selectively providing thestate information or an indication thereof to a second communicationsdevice connected to the communications network; and then enabling thesecond communications device to initiate a communication action based onthe state information or indication thereof.

Another generalized a method involves employing a first device todetermine when a second device connected to the network is notavailable; determining a reason why the second device is not availablebased on a state of the second device; monitoring the state of thesecond device selectively providing a signal in response thereto whenthe state changes; and then employing the first device to selectivelysend a message to the first device based on the signal.

Hence, with reference to FIGS. 1-4, the systems 10, 60, 90 and method120 provide a way to employ state information to facilitate improvingnetwork functionality. implement highly adaptable conferences to meetthe needs of a given application. Note that various embodiments may beadapted to work with various types of networks, either wired orwireless, Local Area Networks (LANs), Wide LANs (WLANs), the Internet,and so on.

While the present embodiment is discussed with reference to systems andmethods for enhancing camp-on functionality for phone calls, embodimentsof the present invention are not limited thereto. For example,communications sessions other than phone calls, such as emails, IMsessions, and so on may benefit from camp-on functionality and/orstate-proliferation functionality afforded by embodiments of the presentinvention.

Although embodiments of the invention are discussed primarily withrespect to specific network architectures, any acceptable architecture,topology, protocols, or other network and digital processing featurescan be employed. Any type of communication system, mode or endpointdevice may be used with features of the invention. For example, althoughthe invention has been discussed with respect to standard telephone,cellular and VOIP calls, other suitable (including future) communicationmodes can be used such as radio communications (e.g., “walkie talkie”),intercom, etc. In general, network controllers, managers, endpoints, andso on, can be implemented via any device with processing ability orother requisite functionality.

Although processes of the present invention and the hardware executingthe processes may be characterized by language common to a discussion ofthe Internet (e.g., “client,” “server,” “peer”), it should be apparentthat operations of the present invention can execute on any type ofsuitable hardware in any communication relationship to another device onany type of link or network.

Although a process of the present invention may be presented as a singleentity, such as software executing on a single machine, such softwarecan readily be executed on multiple machines. That is, there may bemultiple instances of a given software program, a single program may beexecuting on two or more processors in a distributed processingenvironment, parts of a single program may be executing on differentphysical machines, etc. Furthermore, two different programs, such as aclient and server program, can be executing in a single machine, or indifferent machines. A single program can be operating as a client forone information transaction and as a server for a different informationtransaction.

Any type of processing device can be used as a client. For example,portable computing devices such as a personal digital assistant (PDA),cell phone, laptop computer, or other devices can be employed. Ingeneral, the devices and manner of specific processing (includinglocation and timing) are not critical to practicing important featuresof the present invention.

Although the invention has been discussed with respect to specificembodiments thereof, these embodiments are merely illustrative, and notrestrictive, of the invention. Embodiments of the present invention canoperate between any two processes or entities including users, devices,functional systems, or combinations of hardware and software.Peer-to-peer networks and any other networks or systems where the rolesof client and server are switched, change dynamically, or are not evenpresent are within the scope of the invention.

Any suitable programming language can be used to implement the routinesor other instructions employed by various network entities. Exemplaryprogramming languages include C, C++, Java, assembly language, etc.Different programming techniques can be employed such as procedural orobject oriented. The routines can execute on a single processing deviceor multiple processors. Although the steps, operations or computationsmay be presented in a specific order, this order may be changed indifferent embodiments. In some embodiments, multiple steps shown assequential in this specification can be performed at simultaneously. Thesequence of operations described herein can be interrupted, suspended,or otherwise controlled by another process, such as an operating system,kernel, etc. The routines can operate in an operating system environmentor as stand-alone routines occupying all, or a substantial part, of thesystem processing.

In the description herein, numerous specific details are provided, suchas examples of components and/or methods, to provide a thoroughunderstanding of embodiments of the present invention. One skilled inthe relevant art will recognize, however, that an embodiment of theinvention can be practiced without one or more of the specific details,or with other apparatus, systems, assemblies, methods, components,materials, parts, and/or the like. In other instances, well-knownstructures, materials, or operations are not specifically shown ordescribed in detail to avoid obscuring aspects of embodiments of thepresent invention.

A “machine-readable medium” or “computer-readable medium” for purposesof embodiments of the present invention may be any medium that cancontain and store the program for use by or in connection with theinstruction execution system, apparatus, system or device. The computerreadable medium can be, by way of example only but not by limitation, asemiconductor system, apparatus, system, device, propagation medium, orcomputer memory.

A “processor” or “process” includes any hardware and/or software system,mechanism or component that processes data, signals or otherinformation. A processor can include a system with a general-purposecentral processing unit, multiple processing units, dedicated circuitryfor achieving functionality, or other systems. Processing need not belimited to a geographic location, or have temporal limitations. Forexample, a processor can perform its functions in “real time,”“offline,” in a “batch mode,” etc. Portions of processing can beperformed at different times and at different locations, by different(or the same) processing systems. A computer may be any processor incommunication with a memory.

Reference throughout this specification to “one embodiment”, “anembodiment”, or “a specific embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention and notnecessarily in all embodiments. Thus, respective appearances of thephrases “in one embodiment”, “in an embodiment”, or “in a specificembodiment” in various places throughout this specification are notnecessarily referring to the same embodiment. Furthermore, theparticular features, structures, or characteristics of any specificembodiment of the present invention may be combined in any suitablemanner with one or more other embodiments. It is to be understood thatother variations and modifications of the embodiments of the presentinvention described and illustrated herein are possible in light of theteachings herein and are to be considered as part of the spirit andscope of the present invention.

Embodiments of the invention may be implemented in whole or in part byusing a programmed general purpose digital computer; by usingapplication specific integrated circuits, programmable logic devices,field programmable gate arrays, optical, chemical, biological, quantumor nanoengineered systems or mechanisms; and so on. In general, thefunctions of the present invention can be achieved by any means as isknown in the art. Distributed or networked systems, components, and/orcircuits can be used. Communication, or transfer of data may be wired,wireless, or by any other means.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures can also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application. It isalso within the spirit and scope of the present invention to implement aprogram or code that can be stored in a machine-readable medium topermit a computer to perform any of the methods described above.

Additionally, any signal arrows in the drawings/figures should beconsidered only as exemplary, and not limiting, unless otherwisespecifically noted. Furthermore, the term “or” as used herein isgenerally intended to mean “and/or” unless otherwise indicated.Combinations of components or steps will also be considered as beingnoted, where terminology is foreseen as rendering the ability toseparate or combine is unclear.

As used in the description herein and throughout the claims that follow“a”, an and “the” include plural references unless the context clearlydictates otherwise. Furthermore, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

The foregoing description of illustrated embodiments of the presentinvention, including what is described in the Abstract, is not intendedto be exhaustive or to limit the invention to the precise formsdisclosed herein. While specific embodiments of, and examples for, theinvention are described herein for illustrative purposes only, variousequivalent modifications are possible within the spirit and scope of thepresent invention, as those skilled in the relevant art will recognizeand appreciate. As indicated, these modifications may be made to thepresent invention in light of the foregoing description of illustratedembodiments of the present invention and are to be included within thespirit and scope of the present invention.

Thus, while the present invention has been described herein withreference to particular embodiments thereof, a latitude of modification,various changes and substitutions are intended in the foregoingdisclosures, and it will be appreciated that in some instances somefeatures of embodiments of the invention will be employed without acorresponding use of other features without departing from the scope andspirit of the invention as set forth. Therefore, many modifications maybe made to adapt a particular situation or material to the essentialscope and spirit of the present invention. It is intended that theinvention not be limited to the particular terms used in followingclaims and/or to the particular embodiment disclosed as the best modecontemplated for carrying out this invention, but that the inventionwill include any and all embodiments and equivalents falling within thescope of the appended claims.

1. An apparatus for camping on a call, the apparatus comprising: aprocessor; and a memory coupled to the processor comprising instructionsfor execution by the processor, the processor being operable whenexecuting the instructions to: set an advertised state of a firstcommunication device in response to input from a user associated withthe first communication device, wherein the advertised state isspecified by the user; determine the advertised state of the firstcommunication device in response to a caller attempting to call thefirst communication device from a second communication device; presentthe advertised state of the first communication device for communicationto the caller; set a camp on the call to the first communication devicein response to input from the caller indicating a desire to camp on thecall to the first communication device and based on one or more of afirst plurality of caller-selected camp-on options, wherein at least oneoption of the first plurality of caller-selected camp-on options isassociated with a signal-strength state of the first communicationdevice; determine a change in the advertised state of the firstcommunication device; and provide the caller with a second plurality ofcaller-selected camp-on options that are based on the change in theadvertised state.
 2. The apparatus of claim 1, wherein the processor isfurther operable when executing the instructions to automatically accepta connection to the first communication device in response to the changein the advertised state of the first communication device.
 3. Theapparatus of claim 1, wherein the processor is further operable whenexecuting the instructions to accept a connection to the firstcommunication device in response to input from the caller indicating adesire to accept the connection.
 4. The apparatus of claim 1, whereinthe advertised state indicates that the user associated with the firstcommunication device is currently busy.
 5. The apparatus of claim 1,wherein the advertised state indicates that the user associated with thefirst communication device currently wants calls to the firstcommunication device forwarded to a third communication device.
 6. Theapparatus of claim 1, wherein the advertised state indicates that theuser associated with the first communication device currently wantscalls to the first communication device forwarded to a voice-mailsystem.
 7. A method for camping on a call, the method comprising:setting an advertised state of a first communication device in responseto input from a user associated with the first communication device,wherein the advertised state is specified by the user; determining theadvertised state of the first communication device in response to acaller attempting to call the first communication device from a secondcommunication device; presenting the advertised state of the firstcommunication device for communication to the caller; setting a camp onthe call to the first communication device in response to input from thecaller indicating a desire to camp on the call to the firstcommunication device and based on one or more of a first plurality ofcaller-selected camp-on options, wherein at least one option of thefirst plurality of caller-selected camp-on options is associated with asignal-strength state of the first communication device; determining achange in the advertised state of the first communication device; andproviding the caller with a second plurality of caller-selected camp-onoptions that are based on the change in the advertised state.
 8. Themethod of claim 7, further comprising presenting the change in theadvertised state of the first communication device for communication tothe caller.
 9. The method of claim 7, further comprising automaticallyaccepting a connection to the first communication device in response tothe change in the advertised state of the first communication device.10. The method of claim 7, further comprising accepting a connection tothe first communication device in response to input from the callerindicating a desire to accept the connection.
 11. The method of claim 7,wherein the advertised state indicates that the user associated with thefirst communication device is currently busy.
 12. The method of claim 7,wherein the advertised state indicates that the user associated with thefirst communication device currently wants calls to the firstcommunication device forwarded to a third communication device.
 13. Themethod of claim 7, wherein the advertised state indicates that the userassociated with the first communication device currently wants calls tothe first communication device forwarded to a voice-mail system.
 14. Anapparatus for camping on a call, the apparatus comprising: a processor;and a memory coupled to the processor comprising instructions forexecution by the processor, the processor being operable when executingthe instructions to: detect an attempt by a caller at a firstcommunication device to call a second communication device; preventconnection of the call to the second communication device; set anadvertised state of the second communication device in response to inputfrom a user associated with the second communication device, wherein theadvertised state is specified by the user; present the advertised stateof the second communication device for communication to the firstcommunication device; receive a selection based on one or more of afirst plurality of caller-selected camp-on options, wherein at least oneoption of the first plurality of caller-selected camp-on options isassociated with a signal-strength state of the first communicationdevice; set a camp on the call to the second communication device inresponse to the selection; determine a change in the advertised state ofthe second communication device; and provide the caller with a secondplurality of caller-selected camp-on options that are based on thechange in the advertised state.
 15. The apparatus of claim 14, whereinthe advertised state indicates that the user associated with the secondcommunication device is currently busy.
 16. The apparatus of claim 14,wherein the advertised state indicates that the user associated with thesecond communication device currently wants calls to the secondcommunication device forwarded to a third communication device.
 17. Amethod for camping on a call, the method comprising: detecting anattempt by a caller at a first communication device to call a secondcommunication device; preventing connection of the call to the secondcommunication device; set an advertised state of the secondcommunication device in response to input from a user associated withthe second communication device, wherein the advertised state isspecified by the user; presenting the advertised state of the secondcommunication device based on one or more for communication to the firstcommunication device; receiving a selection based on one or more of afirst plurality of caller-selected camp-on options, wherein at least oneoption of the first plurality of caller-selected camp-on options isassociated with a signal-strength state of the first communicationdevice; setting a camp on the call to the second communication device inresponse to the selection; determining a change in the advertised stateof the second communication device; and providing the caller with asecond plurality of caller-selected camp-on options that are based onthe change in the advertised state.
 18. The method of claim 17, whereinthe advertised state indicates that the user associated with the secondcommunication device is currently busy.
 19. The method of claim 17,wherein the advertised state indicates that the user associated with thesecond communication device currently wants calls to the secondcommunication device forwarded to a third communication device.
 20. Themethod of claim 17, wherein the advertised state indicates that the userassociated with the second communication device currently wants calls tothe second communication device forwarded to a voice-mail system.
 21. Anapparatus for camping on a call, the apparatus comprising: a processor;a memory coupled to the processor comprising instructions for executionby the processor, the processor being operable when executing theinstructions to: set an advertised state of a first communication devicein response to input from a user associated with the first communicationdevice, wherein the advertised state is specified by the user; monitorthe advertised state of the first communication device; receive a firstselection from a caller associated with a second communication device,the first selection being based on one or more of a first plurality ofcaller-selected camp-on options, wherein at least one option of thefirst plurality of caller-selected camp-on options is associated with asignal-strength state of the first communication device; set a camp onthe call to the first communication device in response to the firstselection; determine a change in the advertised state of the firstcommunication device; notify the second communication device of thechange in the advertised state of the first communication device;provide the caller with a second plurality of caller-selected camp-onoptions that are based on the change in the advertised state; andprovide a connection to the first communication device from the secondcommunication device in response to a second selection, the secondselection being based on the second selection plurality ofcaller-selected camp-on options.
 22. The apparatus of claim 21, whereina private branch exchange (PBX) comprises the processor and the memory.23. The apparatus of claim 21, wherein an instant message (IM) to thesecond communication device comprises the notification.
 24. Theapparatus of claim 21, wherein the processor is further operable whenexecuting the instructions to establish the connection to the firstcommunication device from the second communication device in response tothe second communication device accepting the connection.
 25. A methodfor camping on a call, the method comprising: setting an advertisedstate of a first communication device in response to input from a userassociated with the first communication device, wherein the advertisedstate is specified by the user; monitoring the advertised state of thefirst communication device; receiving a first selection from a callerassociated with a second communication device, the first selection beingbased on one or more of a first plurality of caller-selected camp-onoptions, wherein at least one option of the first plurality ofcaller-selected camp-on options is associated with a signal-strengthstate of the first communication device; setting a camp on the call tothe first communication device in response to the first selection;determining a change in the advertised state of the first communicationdevice; notifying the second communication device of the change in theadvertised state of the first communication device; providing the callerwith a second plurality of caller-selected camp-on options that arebased on the change in the advertised state; and providing a connectionto the first communication device from the second communication devicein response to a second selection, the second selection being based onthe second plurality of caller-selected camp-on options.
 26. The methodof claim 25, wherein a private branch exchange (PBX) comprises theprocessor and the memory.
 27. The method of claim 25, wherein an instantmessage (IM) to the second communication device comprises thenotification.
 28. The method of claim 25, further comprisingestablishing the connection to the first communication device from thesecond communication device in response to the second communicationdevice accepting the connection.
 29. A system for camping on a call, thesystem comprising: a first communication device operable to detect anattempt by a caller at a second communication device to call the firstcommunication device, prevent connection of the call to the firstcommunication device, set an advertised state of the first communicationdevice in response to input from a user associated with the firstcommunication device, wherein the advertised state is specified by theuser, and communicate an indication of the advertised state of the firstcommunication device to the second communication device; the secondcommunication device, operable to receive the indication of theadvertised state of the first communication device, presenting theadvertised state of the first communication device for communication tothe caller, and set a camp on the call to the first communication devicein response to input from the caller indicating a desire to camp on thecall to the first communication device and based on one or more of afirst plurality of caller-selected camp-on options, wherein at least oneoption of the first plurality of caller-selected camp-on options isassociated with a signal-strength state of the first communicationdevice; and an intermediary communication device between the first andsecond communication devices operable to monitor the advertised state ofthe first communication device, determining a change in the advertisedstate of the first communication device, notify the second communicationdevice of the change in the advertised state of the first communicationdevice, providing the caller with a second plurality of caller-selectedcamp-on options that are based on the change in the advertised state,and provide a connection to the first communication device from thesecond communication device in response to a second selection, thesecond selection being based on the second plurality of caller-selectedcamp-on options.
 30. The system of claim 29, wherein the intermediarycommunication device is a private branch exchange (PBX).